home *** CD-ROM | disk | FTP | other *** search
-
- /*
- *----------------------------------------------------------------------
- *
- * $Source: qc:c-src/common/misclib/rcs/s_socket.h,v $
- * $Revision: 1.3 $
- * $Date: 1993/10/02 19:34:25 $
- * $State: Exp $
- * $Author: alph $
- * $Locker: $
- *
- *----------------------------------------------------------------------
- *
- * alph
- *
- * This code is (C) Copyright 1993 by Carsten Heyl. All rights reserved.
- * This code is NOT in the Public Domain.
- * It may be copied, modified or distributed as long as this notice is
- * present.
- *
- *----------------------------------------------------------------------
- * $Log: s_socket.h,v $
- * Revision 1.3 1993/10/02 19:34:25 alph
- * fixed sendto typo
- *
- */
-
- #include <stdio.h>
- #include <stdarg.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <proto/socket.h>
-
- #define S_MAXFH 32 /* first socket descriptor */
-
- #ifdef PRIVATE_SOCKET_H
-
- #define _IOSOCK 0x1000 /* socket buffered io */
-
- struct __iobufext {
- struct __iobufext *_next;
- unsigned char *_ptr; /* current buffer pointer */
- int _rcnt; /* current byte count for reading */
- int _wcnt; /* current byte count for writing */
- unsigned char *_base; /* base address of I/O buffer */
- int _size; /* size of buffer */
- int _flag; /* control flags */
- int _file; /* file descriptor */
- unsigned char _cbuff; /* single char buffer */
- };
-
- typedef struct __iobufext FILEEXT;
- #else
- #define FILEEXT FILE
-
- #define fclose s_fclose
- #define fflush s_fflush
- #define freopen s_freopen
- #define setbuf s_setbuf
- #define setvbuf s_setvbuf
- #define fprintf s_fprintf
- #define fscanf s_fscanf
- #define vfprintf s_vfprintf
-
- #define fgetc s_fgetc
- #define fgets s_fgets
- #define fputc s_fputc
- #define fputs s_fputs
- #ifdef getc
- #undef getc
- #endif
- #define getc s_getc
- #ifdef putc
- #undef putc
- #endif
- #define putc s_putc
-
- #define fread s_fread
- #define fwrite s_fwrite
- #define fgetpos s_fgetpos
- #define fseek s_fseek
- #define fsetpos s_fsetpos
- #define ftell s_ftell
- #ifndef rewind
- #define rewind s_rewind
- #endif
- #ifndef clearerr
- #define clearerr s_clearerr
- #endif
- #ifndef feof
- #define feof s_feof
- #endif
- #ifndef ferror
- #define ferror s_ferror
- #endif
- /* FIXME: #define perror s_perror */
- #define fdopen s_fdopen
-
- /* low level file stuff */
- #undef write
- #define write s_write
- #undef read
- #define read s_read
- #undef close
- #define close s_close
- #undef lseek
- #define lseek s_lseek
- #undef tell
- #define tell s_tell
- #define isatty s_isatty
- #define iomode s_iomode
-
- /* socket stuff */
- #define accept s_accept
- #define bind s_bind
- #define CloseSocket s_CloseSocket
- #define connect s_connect
- #define getpeername s_getpeername
- #define getsockname s_getsockname
- #define getsockopt s_getsockopt
- #define setsockopt s_setsockopt
- #define ioctl s_ioctl
- #define listen s_listen
- #define recv s_recv
- #define recvfrom s_recvfrom
- #ifdef select
- #undef select
- #endif
- #define select s_select
- #define WaitSelect s_WaitSelect
- #define send s_send
- #define sendto s_sendto
- #define shutdown s_shutdown
- #define socket s_socket
- #define getdtablesize s_getdtablesize
- #undef FD_SET
- #define FD_SET(n, p) ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] |= (1 << ((n-S_MAXFH) % NFDBITS)))
- #undef FD_CLR
- #define FD_CLR(n, p) ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] &= ~(1 << ((n-S_MAXFH) % NFDBITS)))
- #undef FD_ISSET
- #define FD_ISSET(n, p) ((p)->fds_bits[(n-S_MAXFH)/NFDBITS] & (1 << ((n-S_MAXFH) % NFDBITS)))
- #endif
-
- #define s_getc(p) \
- (((p)->_flag & _IOREAD) ? \
- (--(p)->_rcnt >= 0 && ! ((p)->_file & _IORKEY) ? \
- *(p)->_ptr++ \
- : \
- s_fgetc(p)) \
- : \
- s_fgetc(p))
-
- #define s_putc(c,p) \
- (((p)->_flag & _IOWRT) ? \
- (++(p)->_wcnt <= (p)->_size ? \
- ((((int) (*(p)->_ptr++ = ((unsigned char)(c)))) == '\n' && \
- ((p)->_flag & _IOLBF)) ? \
- s_fflush(p), ((unsigned char)(c)) \
- : \
- ((unsigned char)(c))) \
- : \
- (--(p)->_wcnt,s_fputc(c,p))) \
- : \
- s_fputc(c,p))
-
- /* s_socket.c */
- FILE *s_fdopen ( int fd , const char *mode );
- void s_fclose ( FILE *af );
- size_t s_fread ( void *b , size_t bsize , size_t n , FILE *fp );
- size_t s_fwrite ( void *b , size_t bsize , size_t n , FILE *fp );
- int s_fgetc ( FILE *af );
- int s_fflush ( FILEEXT *af );
- int s_vfprintf ( FILE *af , const char *fmt , va_list args );
- int s_fprintf ( FILEEXT *af , const char *fmt , ...);
- int s_ferror ( FILE *af );
- int s_read ( int fh , void *buf , unsigned int len );
- int s_write ( int fh , void *buf , unsigned int len );
- int s_close ( int sd );
-
-
-
- /* s_socket.c */
- FILE *s_fdopen ( int fd , const char *mode );
- void s_fclose ( FILE *af );
- size_t s_fread ( void *b , size_t bsize , size_t n , FILE *fp );
- size_t s_fwrite ( void *b , size_t bsize , size_t n , FILE *fp );
- char *s_fgets ( char *b , int bsize , FILE *fp );
- int s_fputs ( const char *b , FILE *fp );
- int s_fseek ( FILE *fp , long rpos , int mode );
- int s_fgetc ( FILE *af );
- int s_fflush ( FILEEXT *af );
- int s_vfprintf ( FILE *af , const char *fmt , va_list args );
- int s_fprintf ( FILEEXT *af , const char *fmt , ...);
- int s_fputc ( int c , FILEEXT *af );
- int s_ferror ( FILE *af );
- int s_read ( int fh , void *buf , unsigned int len );
- int s_write ( int fh , void *buf , unsigned int len );
- int s_close ( int sd );
- int s_isatty ( int sd );
- int s_iomode(int fd, int mode);
- long s_lseek ( int sd , long a , int mode );
- long s_accept ( long s , struct sockaddr *addr , int *addrlen );
- long s_bind ( long s , struct sockaddr *name , long namelen );
- long s_CloseSocket ( long sd );
- long s_connect ( long s , struct sockaddr *name , long namelen );
- long s_getpeername ( long s , struct sockaddr *name , int *namelen );
- long s_getsockname ( long s , struct sockaddr *name , int *namelen );
- long s_setsockopt ( long s , long level , long optname , caddr_t optval , long optlen );
- long s_listen ( long s , long backlog );
- long s_recv ( long s , char *buf , long len , long flags );
- long s_recvfrom(long s, char *buf, long len, long flags,
- struct sockaddr *from, long *len2);
- long s_select ( long nfds , fd_set *readfds , fd_set *writefds , fd_set *exceptfds , struct timeval *timeout );
- int s_send ( int s , char *msg , int len , int flags );
- long s_shutdown ( long s , long how );
- long s_socket ( long domain , long type , long protocol );
-